.TH std::enable_shared_from_this::enable_shared_from_this 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::enable_shared_from_this::enable_shared_from_this \- std::enable_shared_from_this::enable_shared_from_this

.SH Synopsis
   constexpr enable_shared_from_this() noexcept;                      \fB(1)\fP \fI(since C++11)\fP
   enable_shared_from_this( const enable_shared_from_this& other )    \fB(2)\fP \fI(since C++11)\fP
   noexcept;

   Constructs a new enable_shared_from_this object. The exposition only
   std::weak_ptr<T> member weak-this is value-initialized.

.SH Parameters

   other - an enable_shared_from_this to copy

.SH Notes

   There is no move constructor: moving from an object derived from
   enable_shared_from_this does not transfer its shared identity.

.SH Example


// Run this code

 #include <memory>

 struct Foo : public std::enable_shared_from_this<Foo>
 {
     Foo() {} // implicitly calls enable_shared_from_this constructor
     std::shared_ptr<Foo> getFoo() { return shared_from_this(); }
 };

 int main()
 {
     std::shared_ptr<Foo> pf1(new Foo);
     auto pf2 = pf1->getFoo(); // shares ownership of object with pf1
 }

.SH See also

   shared_ptr smart pointer with shared object ownership semantics
   \fI(C++11)\fP    \fI(class template)\fP
